#include <stdio.h>
#include <stdlib.h>

typedef struct stacktest
{
	int *data;
	int max;
	int flag;
}stack_test;

stack_test *creat(void);

int insertstack(stack_test *mystack,int num);
int outstack(stack_test *mystack);
int viewstack(stack_test *mystack);

int main(int argc, const char *argv[])
{
	stack_test *mystack=creat();
	insertstack(mystack,5);
	insertstack(mystack,8);
	viewstack(mystack);
	outstack(mystack);
	viewstack(mystack);
	return 0;
}

stack_test *creat()
{
	stack_test *mystack=(stack_test *)malloc(sizeof(stack_test));
	mystack->max=6;
	mystack->flag=-1;
	mystack->data=(int *)malloc(sizeof(int)*mystack->max);
	
	return mystack;
}

int insertstack(stack_test *mystack,int num)
{
	if(mystack->flag==mystack->max-1)
	{
		printf("full! \n");
		return -1;
	}
	mystack->flag++;
	mystack->data[mystack->flag]=num;

	return 0;
}

int outstack(stack_test *mystack)
{
	if(mystack->flag<=-1)
	{
		printf("kong!\n");
		return -1;
	}
	mystack->flag--;

	return 0;
}

int viewstack(stack_test *mystack)
{
	if(mystack->flag==-1)
	{
		printf("kong!\n");
		return -1;
	}
	int len=mystack->flag;
	int i=0;
	for(i=0;i<len+1;i++)
	{
		printf("%d ",mystack->data[i]);
	}
	printf("\n");
	return 0;
}
